\hypertarget{classpg_renderable_object}{\section{pg\-Renderable\-Object Class Reference}
\label{classpg_renderable_object}\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}}
}


The default renderable object.  




{\ttfamily \#include $<$pg\-Renderable\-Object.\-h$>$}

Inheritance diagram for pg\-Renderable\-Object\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classpg_renderable_object}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classpg_renderable_object_affab05fae24821825bd892158738cdcb}{pg\-Renderable\-Object} ()
\item 
\hyperlink{classpg_renderable_object_a253b492b4f3f9157e4a79c3b8e107bd2}{pg\-Renderable\-Object} (\hyperlink{classpg_renderable_object}{pg\-Renderable\-Object} $\ast$p\-Copy)
\item 
\hyperlink{classpg_renderable_object_ae315818c55b2f72978f27b091318281a}{$\sim$pg\-Renderable\-Object} ()
\item 
bool \hyperlink{classpg_renderable_object_a11ccb575b1ecc1dcd0e641d985a0e29c}{Load} (const char $\ast$sz\-File\-Path)
\begin{DoxyCompactList}\small\item\em Loads a mesh from the specified filepath. \end{DoxyCompactList}\item 
bool \hyperlink{classpg_renderable_object_ad0293f0e6bf59fa5344f94a96e65ea26}{Load} ()
\begin{DoxyCompactList}\small\item\em Used for primitive derived objects. \end{DoxyCompactList}\item 
void \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{Render} ()
\item 
void \hyperlink{classpg_renderable_object_a5a88dd638276dbd1f812aa1940e619d3}{Pre\-Render} ()
\begin{DoxyCompactList}\small\item\em Called immmediately before \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{Render()}. \end{DoxyCompactList}\item 
void \hyperlink{classpg_renderable_object_a0c09b82c6c02f8c5b071b5f41d8db762}{Post\-Render} ()
\begin{DoxyCompactList}\small\item\em Called immediately after \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{Render()}. \end{DoxyCompactList}\item 
X\-M\-M\-A\-T\-R\-I\-X \hyperlink{classpg_renderable_object_ae8b043753092952bf012283460eeae3a}{Get\-World\-Transform\-Matrix} ()
\item 
void \hyperlink{classpg_renderable_object_a3b37315c868aa9662fabd08e4b185cd3}{Set\-World\-Transform\-Matrix} (X\-M\-M\-A\-T\-R\-I\-X mat)
\item 
void \hyperlink{classpg_renderable_object_a25bb8965ea9b67573bed3176d1501fb8}{Set\-Mesh} (\hyperlink{classpg_mesh}{pg\-Mesh} $\ast$p\-M)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classpg_renderable_object_a938d73b0ab6b2b4ca02710613ed0d3fe}{Load\-O\-B\-J} (const char $\ast$sz\-File\-Path)
\begin{DoxyCompactList}\small\item\em Loads an O\-B\-J style mesh. \end{DoxyCompactList}\item 
bool \hyperlink{classpg_renderable_object_ad2a827c02e2907138766b246094d18e3}{Load\-O\-B\-J\-Material} (const char $\ast$sz\-File\-Path)
\begin{DoxyCompactList}\small\item\em Load a material from a file. \end{DoxyCompactList}\item 
bool \hyperlink{classpg_renderable_object_a2a6fa711f5ec3f01a7b94d6f729ce636}{Load\-F\-B\-X} (const char $\ast$sz\-File\-Path)
\begin{DoxyCompactList}\small\item\em Load a F\-B\-X file. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classpg_mesh}{pg\-Mesh} $\ast$ \hyperlink{classpg_renderable_object_a59af497ddf4638a9cc45a457fff43d49}{m\-\_\-p\-Mesh}
\begin{DoxyCompactList}\small\item\em The geometry. \end{DoxyCompactList}\item 
\hyperlink{classpg_material}{pg\-Material} $\ast$ \hyperlink{classpg_renderable_object_a41ee63e534cf8eb40813a9186bdabacf}{m\-\_\-p\-Material}
\begin{DoxyCompactList}\small\item\em The material. \end{DoxyCompactList}\item 
X\-M\-M\-A\-T\-R\-I\-X \hyperlink{classpg_renderable_object_a05ef8f7138d0520a0647ac4f12691d7f}{m\-\_\-world\-Transform\-Matrix}
\item 
I\-D3\-D11\-Buffer $\ast$ \hyperlink{classpg_renderable_object_a583de5c090cf8fcc6bcaa23d610e9c80}{m\-\_\-p\-Constant\-Buffer}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
The default renderable object. 

Currently support for Wavefront O\-B\-J and Autodesk F\-B\-X is planned. O\-B\-J will be discarded once F\-B\-X fully functions. Also plannings are that Pale\-Gem will use its own material file format hence the object consists of geometry and a material. \begin{DoxySeeAlso}{See Also}
\hyperlink{class_i_renderable_object}{I\-Renderable\-Object} 
\end{DoxySeeAlso}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classpg_renderable_object_affab05fae24821825bd892158738cdcb}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!pg\-Renderable\-Object@{pg\-Renderable\-Object}}
\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{pg\-Renderable\-Object}]{\setlength{\rightskip}{0pt plus 5cm}pg\-Renderable\-Object\-::pg\-Renderable\-Object (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{classpg_renderable_object_affab05fae24821825bd892158738cdcb}
\hypertarget{classpg_renderable_object_a253b492b4f3f9157e4a79c3b8e107bd2}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!pg\-Renderable\-Object@{pg\-Renderable\-Object}}
\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{pg\-Renderable\-Object}]{\setlength{\rightskip}{0pt plus 5cm}pg\-Renderable\-Object\-::pg\-Renderable\-Object (
\begin{DoxyParamCaption}
\item[{{\bf pg\-Renderable\-Object} $\ast$}]{p\-Copy}
\end{DoxyParamCaption}
)}}\label{classpg_renderable_object_a253b492b4f3f9157e4a79c3b8e107bd2}
\hypertarget{classpg_renderable_object_ae315818c55b2f72978f27b091318281a}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!$\sim$pg\-Renderable\-Object@{$\sim$pg\-Renderable\-Object}}
\index{$\sim$pg\-Renderable\-Object@{$\sim$pg\-Renderable\-Object}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{$\sim$pg\-Renderable\-Object}]{\setlength{\rightskip}{0pt plus 5cm}pg\-Renderable\-Object\-::$\sim$pg\-Renderable\-Object (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{classpg_renderable_object_ae315818c55b2f72978f27b091318281a}


\subsection{Member Function Documentation}
\hypertarget{classpg_renderable_object_ae8b043753092952bf012283460eeae3a}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Get\-World\-Transform\-Matrix@{Get\-World\-Transform\-Matrix}}
\index{Get\-World\-Transform\-Matrix@{Get\-World\-Transform\-Matrix}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Get\-World\-Transform\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}X\-M\-M\-A\-T\-R\-I\-X pg\-Renderable\-Object\-::\-Get\-World\-Transform\-Matrix (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classpg_renderable_object_ae8b043753092952bf012283460eeae3a}


Implements \hyperlink{class_i_renderable_object_a9eb9acb43b22ec1a60b570630afaebf5}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_a11ccb575b1ecc1dcd0e641d985a0e29c}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Load@{Load}}
\index{Load@{Load}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Load}]{\setlength{\rightskip}{0pt plus 5cm}bool pg\-Renderable\-Object\-::\-Load (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{sz\-File\-Path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classpg_renderable_object_a11ccb575b1ecc1dcd0e641d985a0e29c}


Loads a mesh from the specified filepath. 

The format is chosen by the extension 
\begin{DoxyParams}{Parameters}
{\em sz\-File\-Path} & Path to the mesh file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}


Implements \hyperlink{class_i_renderable_object_a69fb217e1529b5ae33107d256f20f9e9}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_ad0293f0e6bf59fa5344f94a96e65ea26}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Load@{Load}}
\index{Load@{Load}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Load}]{\setlength{\rightskip}{0pt plus 5cm}bool pg\-Renderable\-Object\-::\-Load (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classpg_renderable_object_ad0293f0e6bf59fa5344f94a96e65ea26}


Used for primitive derived objects. 



Implements \hyperlink{class_i_renderable_object_a527206d091af2f65837cd7bb83a7ddcb}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_a2a6fa711f5ec3f01a7b94d6f729ce636}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Load\-F\-B\-X@{Load\-F\-B\-X}}
\index{Load\-F\-B\-X@{Load\-F\-B\-X}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Load\-F\-B\-X}]{\setlength{\rightskip}{0pt plus 5cm}bool pg\-Renderable\-Object\-::\-Load\-F\-B\-X (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{sz\-File\-Path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a2a6fa711f5ec3f01a7b94d6f729ce636}


Load a F\-B\-X file. 


\begin{DoxyParams}{Parameters}
{\em sz\-File\-Path} & Path to the $\ast$.fbx file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on succes 
\end{DoxyReturn}
\hypertarget{classpg_renderable_object_a938d73b0ab6b2b4ca02710613ed0d3fe}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Load\-O\-B\-J@{Load\-O\-B\-J}}
\index{Load\-O\-B\-J@{Load\-O\-B\-J}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Load\-O\-B\-J}]{\setlength{\rightskip}{0pt plus 5cm}bool pg\-Renderable\-Object\-::\-Load\-O\-B\-J (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{sz\-File\-Path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a938d73b0ab6b2b4ca02710613ed0d3fe}


Loads an O\-B\-J style mesh. 


\begin{DoxyParams}{Parameters}
{\em sz\-File\-Path} & Path to the $\ast$.obj file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classpg_renderable_object_ad2a827c02e2907138766b246094d18e3}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Load\-O\-B\-J\-Material@{Load\-O\-B\-J\-Material}}
\index{Load\-O\-B\-J\-Material@{Load\-O\-B\-J\-Material}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Load\-O\-B\-J\-Material}]{\setlength{\rightskip}{0pt plus 5cm}bool pg\-Renderable\-Object\-::\-Load\-O\-B\-J\-Material (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{sz\-File\-Path}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_ad2a827c02e2907138766b246094d18e3}


Load a material from a file. 


\begin{DoxyParams}{Parameters}
{\em sz\-File\-Path} & Path tp the $\ast$.mtl file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classpg_renderable_object_a0c09b82c6c02f8c5b071b5f41d8db762}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Post\-Render@{Post\-Render}}
\index{Post\-Render@{Post\-Render}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Post\-Render}]{\setlength{\rightskip}{0pt plus 5cm}void pg\-Renderable\-Object\-::\-Post\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classpg_renderable_object_a0c09b82c6c02f8c5b071b5f41d8db762}


Called immediately after \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{Render()}. 



Implements \hyperlink{class_i_renderable_object_acc15b8342715b37a63cbfe65d1f28301}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_a5a88dd638276dbd1f812aa1940e619d3}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Pre\-Render@{Pre\-Render}}
\index{Pre\-Render@{Pre\-Render}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Pre\-Render}]{\setlength{\rightskip}{0pt plus 5cm}void pg\-Renderable\-Object\-::\-Pre\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classpg_renderable_object_a5a88dd638276dbd1f812aa1940e619d3}


Called immmediately before \hyperlink{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{Render()}. 



Implements \hyperlink{class_i_renderable_object_a17f8490e4248b2e86f80c096eb8b5061}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Render@{Render}}
\index{Render@{Render}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Render}]{\setlength{\rightskip}{0pt plus 5cm}void pg\-Renderable\-Object\-::\-Render (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classpg_renderable_object_a6f88d861da386efdb201dd1497460049}
\begin{DoxySeeAlso}{See Also}
\hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{I\-Renderable\-Object\-::\-Render()} 
\end{DoxySeeAlso}


Implements \hyperlink{class_i_renderable_object_a1137c257fc196fda57f81d9e8a08a40f}{I\-Renderable\-Object}.

\hypertarget{classpg_renderable_object_a25bb8965ea9b67573bed3176d1501fb8}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Set\-Mesh@{Set\-Mesh}}
\index{Set\-Mesh@{Set\-Mesh}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Set\-Mesh}]{\setlength{\rightskip}{0pt plus 5cm}void pg\-Renderable\-Object\-::\-Set\-Mesh (
\begin{DoxyParamCaption}
\item[{{\bf pg\-Mesh} $\ast$}]{p\-M}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classpg_renderable_object_a25bb8965ea9b67573bed3176d1501fb8}
\hypertarget{classpg_renderable_object_a3b37315c868aa9662fabd08e4b185cd3}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!Set\-World\-Transform\-Matrix@{Set\-World\-Transform\-Matrix}}
\index{Set\-World\-Transform\-Matrix@{Set\-World\-Transform\-Matrix}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{Set\-World\-Transform\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}void pg\-Renderable\-Object\-::\-Set\-World\-Transform\-Matrix (
\begin{DoxyParamCaption}
\item[{X\-M\-M\-A\-T\-R\-I\-X}]{mat}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classpg_renderable_object_a3b37315c868aa9662fabd08e4b185cd3}


Implements \hyperlink{class_i_renderable_object_a001ef1f9df8f5ff46f25b16b5e4f1538}{I\-Renderable\-Object}.



\subsection{Member Data Documentation}
\hypertarget{classpg_renderable_object_a583de5c090cf8fcc6bcaa23d610e9c80}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!m\-\_\-p\-Constant\-Buffer@{m\-\_\-p\-Constant\-Buffer}}
\index{m\-\_\-p\-Constant\-Buffer@{m\-\_\-p\-Constant\-Buffer}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{m\-\_\-p\-Constant\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}I\-D3\-D11\-Buffer$\ast$ pg\-Renderable\-Object\-::m\-\_\-p\-Constant\-Buffer\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a583de5c090cf8fcc6bcaa23d610e9c80}
\hypertarget{classpg_renderable_object_a41ee63e534cf8eb40813a9186bdabacf}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!m\-\_\-p\-Material@{m\-\_\-p\-Material}}
\index{m\-\_\-p\-Material@{m\-\_\-p\-Material}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{m\-\_\-p\-Material}]{\setlength{\rightskip}{0pt plus 5cm}{\bf pg\-Material}$\ast$ pg\-Renderable\-Object\-::m\-\_\-p\-Material\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a41ee63e534cf8eb40813a9186bdabacf}


The material. 

\hypertarget{classpg_renderable_object_a59af497ddf4638a9cc45a457fff43d49}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!m\-\_\-p\-Mesh@{m\-\_\-p\-Mesh}}
\index{m\-\_\-p\-Mesh@{m\-\_\-p\-Mesh}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{m\-\_\-p\-Mesh}]{\setlength{\rightskip}{0pt plus 5cm}{\bf pg\-Mesh}$\ast$ pg\-Renderable\-Object\-::m\-\_\-p\-Mesh\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a59af497ddf4638a9cc45a457fff43d49}


The geometry. 

\hypertarget{classpg_renderable_object_a05ef8f7138d0520a0647ac4f12691d7f}{\index{pg\-Renderable\-Object@{pg\-Renderable\-Object}!m\-\_\-world\-Transform\-Matrix@{m\-\_\-world\-Transform\-Matrix}}
\index{m\-\_\-world\-Transform\-Matrix@{m\-\_\-world\-Transform\-Matrix}!pgRenderableObject@{pg\-Renderable\-Object}}
\subsubsection[{m\-\_\-world\-Transform\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}X\-M\-M\-A\-T\-R\-I\-X pg\-Renderable\-Object\-::m\-\_\-world\-Transform\-Matrix\hspace{0.3cm}{\ttfamily [private]}}}\label{classpg_renderable_object_a05ef8f7138d0520a0647ac4f12691d7f}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Inc/\hyperlink{pg_renderable_object_8h}{pg\-Renderable\-Object.\-h}\item 
Source/\hyperlink{pg_renderable_object_8cpp}{pg\-Renderable\-Object.\-cpp}\end{DoxyCompactItemize}
